package com.whfc.ms.api.sys.service;

import com.whfc.fuum.dto.SysRoleDTO;
import com.whfc.fuum.dto.SysRoleDetailDTO;
import com.whfc.fuum.dto.SysRuleDTO;
import com.whfc.fuum.dto.SysUserDTO;
import com.whfc.fuum.param.SysRoleAdd;
import com.whfc.fuum.param.SysRoleEdit;
import com.whfc.fuum.param.SysRoleRuleEdit;

import java.util.List;

/**
 * @author qzexing
 * @version 1.0
 * @date 2020-12-10 19:33
 */
public interface MsSysRoleService {

    /**
     * 获取角色列表
     *
     * @param userId
     * @param deptId
     * @param keyword
     * @return
     */
    List<SysRoleDTO> list(Integer userId, Integer deptId, String keyword);

    /**
     * 增加角色
     *
     * @param request
     */
    void add(SysRoleAdd request);

    /**
     * 删除角色
     *
     * @param id
     */
    void del(Integer id);

    /**
     * 编辑角色
     *
     * @param request
     */
    void edit(SysRoleEdit request);

    /**
     * 获取角色的详细信息
     *
     * @param id
     * @param platform
     * @return
     */
    SysRoleDetailDTO getRoleDetailById(Integer id, Integer platform);

    /**
     * 查询角色关联用户
     *
     * @param roleId
     * @return
     */
    List<SysUserDTO> getRoleUserList(Integer roleId);

    /**
     * 查询角色关联权限
     *
     * @param roleId   角色ID
     * @param platform 权限平台
     * @return 权限列表
     */
    List<SysRuleDTO> getRoleRuleList(Integer roleId, Integer platform);

    /**
     * 编辑角色权限
     *
     * @param roleRuleEdit
     */
    void editRoleRule(SysRoleRuleEdit roleRuleEdit);

}
